<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <script>

        // 默认情况下  window
        // 事件处理函数   绑定事件的对象 
        // 在对象中   对象本身

        // 严格模式   undefined

        // 箭头函数   没有指向  跟随父元素



        // 函数直接属于谁，就指向谁




        console.log(this);   // window


        document.onclick = function() {
            console.log(this);   // document
        }


        function fn() {
            console.log(this);   // window
        }


        fn()




        const obj = {
            name : 'cc' ,
            age : 17 ,
            say : function() {

                // 里面的函数尽量写箭头函数，保证内部的this永远指向obj
                console.log(this);   // obj
                // return function() {
                //     console.log(this);   // window
                // }

                setTimeout(function() {
                    console.log(this);   // window
                })
            }
        }

        // const f = obj.say() ;
        // f() ;

        obj.say()






        function Dog() {
            console.log(this);

            // setTimeout(function(){
            //     console.log(this);  // window
            // })
        }

        Dog.prototype.say = function() {
            console.log(this);   // 实例化对象
            
        }


        Dog()  // window

        new Dog()   // 实例化对象

    </script>
    
</body>
</html>